home *** CD-ROM | disk | FTP | other *** search
- Veränderungen in Frank Wübbeling's Amiga-Portierung von `FIG'
- -------------------------------------------------------------
-
- - Das Programm ist gegenüber der Erstversion wesentlich kürzer
- geworden.
-
- - Zur Übersetzung habe ich den SAS/C Compiler 5.10a benutzt und so
- nebenbei einen Haufen von Inkonsistenzen beseitigt. Da waren
- Variablen mehrfach definiert, beim Anfordern von Resourcen wurde
- nicht darauf geachtet, ob die Anforderung erfolgreich war, etc.
- Da die Libraries des SAS/C Compilers teilweise nicht die Features
- unterstützen, wie sie der Aztec `C' Compiler bietet, mußte ich eine
- Handvoll Funktionen umschreiben, bzw. komplett neu schreiben
- (welcher der beiden Compiler hält sich denn jetzt eigentlich an den
- ANSI- und welcher an den Unix-Standard?).
- Da mir beim härteren Testen mit `MungWall' mehrfach auffiel, daß
- das Programm seinen angeforderten Speicher teilweise über die
- angegebenen Grenzen hinaus überschrieb, habe ich die Routinen zur
- Speicherverwaltung neu geschrieben. Jedem angeforderten
- Speicherblock wird zusätzlich noch ein kleines bißchen mehr Speicher
- angehängt, als angefordert war.
-
- - Um das Risiko von sporadischen Systemabstürzen zu reduzieren, wurde
- das Programm mit dem Startup-Code `catch.o' gelinkt.
-
- - Die exception-gesteuerte Fensterabfrage und das `EasyWindows'-System
- sind nicht mehr vorhanden. Ich habe alle verwendeten Routinen neu
- geschrieben und dem bestehenden Amiga-Standard angepaßt.
-
- - Der Bildschirm wird nicht mehr von einem einzigen Fenster
- `bevölkert', sondern von zweien, sodaß die häßlichen Nebeneffekte,
- wie das unabsichtliche Löschen der Bedienfelder, der Vergangenheit
- angehören.
-
- - Die Bedienelemente werden korrekt selektiert, es ist nicht mehr
- möglich durch doppeltes Selektieren den aktuellen Zeichenmodus
- `verschwinden' zu lassen.
-
- - Beim Anklicken eines Bedienelementes, das die aktuelle
- Zeichenfunktion verändert, wird die Bearbeitung der letzten
- Zeichenfunktion sofort beendet. Dies verhindert das Entstehen von
- `Vektorleichen', die nie wieder vom Bildschirm zu löschen sind.
-
- - Die Position des Mauszeigers wird permanent angezeigt, sowohl in
- Punkten als auch in Zentimetern. Die Koordinatenanzeige wird wie
- auch das Zoom-Fenster bei jeder vierten Mausbewegung auf den
- neuesten Stand gebracht. Dies spart Rechenzeit und läßt die Maus
- nicht ganz so träge über den Bildschirm `torkeln'. Wer trotzdem bei
- jeder Mausbewegung genau wissen/sehen will, wo sich die Maus gerade
- befindet, der sollte eine der Shift-Tasten gedrückt halten.
-
- - Ich habe die intern verwendete Konstante zur Umrechnung von Punkten
- in Inches verändert. Sie sollte jetzt der Bildschirmauflösung des
- Amigas näher kommen (67 Punkte statt 80 Punkte sollen einem Inch
- entsprechen). Zusätzlich wird das bei Bedarf zuschaltbare Raster
- nicht mehr in halben Inches bzw. Viertel-Inches angezeigt, sondern
- in Zentimetern (ein halber Zentimeter, bzw. ein Zentimeter).
-
- - Es gibt eine Funktion zum Vergrößern der 40 Punkte um den
- Mauszeiger. Diese Funktion ist nur unter Kickstart 2.0 oder
- Nachfolgeversionen verfügbar, da ich es doch nicht geschafft habe,
- mir eine halbwegs schnelle Vergrößerungsroutine auszudenken :-(
- Die Größe des Fensters bestimmt wie weit der Ausschnitt unter der
- Maus vergrößert wird. Das Kreuz im Fenster bezeichnet die aktuelle
- Position des Mauszeigers. Leider ergeben sich Rundungsfehler bei
- der Umrechnung und Vergrößerung, sodaß die Mausposition nicht immer
- korrekt durch den Schnittpunkt des Kreuzes angezeigt wird: je
- größer das Fenster gemacht wird, desto korrekter wird die Position
- angezeigt.
-
- - Die Text-Funktion übernimmt jetzt auch den erweiterten Zeichensatz
- des Amiga (`ECMA 94 Latin 1', wird auch von DEC, NeXT und Sun
- unterstützt). TeX, bzw. LaTeX werden damit Probleme bekommen, es
- sei denn man hat seine Formatfiles dahingehend geändert, daß die
- Zeichen in ein für TeX lesbares Format gewandelt werden (z.B. über
- `ecma_94_latin_1.sty').
-
- - Statt weiterhin eine Maus mit drei Tasten zu `emulieren' habe ich
- die einzige Funktion, die eine dritte Maustaste erfordert hätte (das
- Pop-Up-Menü) durch Ändern des Pop-Up-Menüs in ein Pull-Down-Menü
- überflüssig gemacht. Hiermit entspricht die `mittlere' Maustaste
- der rechten Maustaste. Das Pull-Down-Menü wird immer dann
- angezeigt, wenn sich der Mauszeiger außerhalb des Zeichenfensters
- befindet (z.B. im Bedienfeld oder über dem Drag-Bar des
- Bildschirms).
-
- - Alle im Menü angezeigten Funktionen werden auch wirklich
- unterstützt.
-
- - Der Menüpunkt `Save as BITMAP' speichert den Inhalt des
- Zeichenfensters als IFF-ILBM-Datei anstatt im Sun-Rasterformat.
-
- - Wo immer es mir sinnvoll erschien habe ich die Funktionen von Bruce
- Dawson's und Colin Fox' req.library verwendet.
-
- - Fast alle Menüpunkte wurden mit Kurzkommandos (`Shortcuts' versehen.
- Hiermit tut sich ein neues Problem auf: da `Fig' die rechte
- Maustaste bei der Benutzung der Zeichenfunktionen selbst belegt,
- können auch die Menüpunkte nicht mehr über Amiga-Taste+<Taste>
- ausgelöst werden (ein unangenehmer Seiteneffekt). Um dennoch mit
- den Kurzkommandos arbeiten zu können, lassen sie sich jedoch auch
- ohne Betätigung der Amiga-Taste auslösen (jedoch nicht, während der
- Textmodus aktiv ist).
-
- - Läuft das Programm unter Kickstart 2.x, so ergibt sich die
- Möglichkeit, die Auflösung des Bildschirms zu verändern. Hierzu
- existiert ein Menüpunkt, über dessen Anwahl man in die
- Auflösungsauswahl gelangt. Durch Anklicken eines Auswahlfeldes kann
- die Auflösung bestimmt werden, in der Bildschirm von `Fig' BEIM
- NÄCHSTEN Start des Programmes geöffnet wird. Die Auflösung wird in
- Environment-Variablen gespeichert.
-
- - Der auf dem Bildschirm zu verwendende Font kann nicht mehr
- ausgewählt werden.
-
- - Die Breite des Zeichenfensters ist nicht mehr von Hand zu setzen.
-
- - Ich habe den `Magnet Mode' wieder aktiviert.
-
-
- Autor:
- ------
-
- Olaf `Olsen' Barthel
- Brabeckstraße 35
- D-3000 Hannover 71
-
- Bundesrepublik Deutschland
-
- Z-Net: O.BARTHEL@A-Link-H
- Sub: o.barthel@a-link-h.zer.sub.org
-